perm filename PUP1B.PAL[11,HE] blob sn#656317 filedate 1982-04-29 generic text, type T, neo UTF8
; Copyright Xerox Corporation 1979

.TITLE PUP1B 
; PUP1B -- PUP LEVEL 1

.CSECT GLOBAL
G=.

.CSECT

; ENTRY POINT TO PUPLEVEL1
LA1:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
LA23:
	CLR -2.(0)
	CLR -4.(0)
	CLR -6.(0)
	CLR -8.(0)
	CLR -10.(0)
	CLR -12.(0)
LA24:

	BR LA26
LA25:
	MOV G+386.,%1
	JSR %7,@G+232.
	000016
	MOV %1,-2.(0)
	MOV -2.(0),%1
	JSR %7,@G+306.
	000016
LA26:
	MOV G+386.,%1
	ASL %1
	TST (1)
	BNE LA25
	MOV G+384.,%1
	JSR %7,@G+232.
	000016
	MOV %1,-2.(0)
	TST -2.(0)
	BEQ LA27
	BR LA28
LA27:
	JSR %7,@G+254.
	000016
	BR LA24
LA28:
	MOV -2.(0),%1
	ASL %1
	MOV G+386.,2.(1)
	MOV -2.(0),%1
	ASL %1
	CLR 4.(1)
	MOV -2.(0),%1
	ASL %1
	CLR 8.(1)
	MOV -2.(0),%1
	ASL %1
	MOV 32.(1),%1
	BIC #177400,%1
	TST %1
	BNE LA29
	MOV -2.(0),%1
	JSR %7,@G+306.
	000016
	BR LA23
LA29:
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	CLRB %1
	SWAB %1
	MOV %1,-4.(0)
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	BIC #177400,%1
	MOV %1,-6.(0)
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),-8.(0)
	CLR %3
	MOV -4.(0),%2
	MOV G+414.,%1
	JSR %7,@G+342.
	000016
	MOV %1,-10.(0)
	TST -4.(0)
	BEQ LA30
	MOV -8.(0),%1
	ASL %1
	BR	LA999
LA22:
	JMP MA22
LA999:
	TST 2.(1)
	BEQ LA30
	TST -10.(0)
	BEQ LA31
	MOV -10.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #100377,%1
	TST %1
	BNE LA33
	MOV -10.(0),%1
	ASL %1
	MOV 4.(1),-8.(0)
	BR LA34
LA33:
	MOV -2.(0),%2
	MOV G+390.,%1
	JSR %7,@G+230.
	000016
	JMP LA23
LA34:
	BR LA32
LA31:
	MOV #LA998,%1
	CLC 
	ROR %1
	MOV #177777,%4
	MOV %1,%3
	MOV #001002,%2
	MOV -2.(0),%1
	JSR %7,@LA7
	000016
	JMP LA23
LA32:
LA30:
	MOV -8.(0),%1
	ASL %1
	CMP 4.(1),-6.(0)
	BEQ LA35
	TST -6.(0)
	BEQ LA35
	MOV -2.(0),%2
	MOV G+390.,%1
	JSR %7,@G+230.
	000016
	JMP LA23
LA35:
	MOV G+388.,%1
	ASL %1
	MOV (1),-12.(0)
LA36:
	TST -12.(0)
	BNE LA37
	MOV -2.(0),%1
	JSR %7,@LA3
	000016
	BR LA38
LA37:
	MOV #000016,%1
	ADD -2.(0),%1
	ASL %1
	MOV #000006,%2
	ADD -12.(0),%2
	ASL %2
	CMP (1),(2)
	BNE LA39
	MOV #000016,%1
	INC %1
	ADD -2.(0),%1
	ASL %1
	MOV #000006,%2
	INC %2
	ADD -12.(0),%2
	ASL %2
	CMP (1),(2)
	BNE LA39
	MOV -12.(0),%1
	ASL %1
	TST 8.(1)
	BEQ LA40
	TST #100000
	BEQ LA40
	MOV -2.(0),%1
	ASL %1
	MOV 18.(1),%1
	DEC %1
	CLC 
	ROR %1
	ADD #000011,%1
	ADD -2.(0),%1
	ASL %1
	MOV (1),-14.(0)
	CMP #177777,-14.(0)
	BEQ LA41
	MOV -2.(0),%1
	ADD #000011,%1
	JSR %7,@G+322.
	000020
	CMP %1,-14.(0)
	BEQ LA41
	MOV #LA997,%1
	CLC 
	ROR %1
	MOV %1,%3
	MOV #000001,%2
	MOV -2.(0),%1
	JSR %7,@LA7
	000020
	BR LA38
LA41:
LA40:
	MOV -8.(0),%1
	ASL %1
	TST 2.(1)
	BNE LA42
	TST -4.(0)
	BEQ LA42
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	ASL %1
	MOV -4.(0),2.(1)
	MOV -4.(0),%2
	MOV G+414.,%1
	JSR %7,@G+344.
	000016
	MOV %1,-10.(0)
	MOV -10.(0),%1
	ASL %1
	MOV -8.(0),4.(1)
	MOV -8.(0),%1
	ASL %1
	MOV -10.(0),%2
	ASL %2
	MOV 4.(1),2.(2)
LA42:
	BR	LA996
LA38:
	JMP MA38
LA39:
	JMP MA39
LA996:
	MOV -2.(0),%1
	JSR %7,@LA5
	000016
	MOV -12.(0),%1
	ASL %1
	MOV 4.(1),%1
	BIC #177400,%1
	TST %1
	BEQ LA44
	MOV -12.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #177400,%1
	TST %1
	BNE LA43
LA44:
	MOV #LA995,%1
	CLC 
	ROR %1
	MOV %1,%3
	MOV #000003,%2
	MOV -2.(0),%1
	JSR %7,@LA7
	000016
	BR LA38
LA43:
	MOV -12.(0),%1
	ASL %1
	MOV 4.(1),%1
	DEC %1
	MOV -12.(0),%2
	ASL %2
	MOV %1,4.(2)
	MOV -12.(0),%1
	ASL %1
	MOV 2.(1),%1
	DEC %1
	MOV -12.(0),%2
	ASL %2
	MOV %1,2.(2)
	MOV -2.(0),%1
	ASL %1
	MOV 8.(1),%1
	BIS #100000,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,8.(2)
	MOV -2.(0),%1

	ASL %1
	MOV -12.(0),4.(1)
	MOV -12.(0),%1
	ADD #000013,%1
	MOV -2.(0),%2
	JSR %7,@G+230.
	000016
	BR LA38
MA39:
	MOV -12.(0),%1
	ASL %1
	MOV (1),-12.(0)
	JMP LA36
MA38:
	JMP LA23


; ENTRY POINT TO SOCKETNOTFOUND
LA2:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV #LA994,%1
	CLC 
	ROR %1
	MOV %1,%3
	MOV #000002,%2
	MOV -2.(0),%1
	JSR %7,@LA7
	000004
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO FILLINNETS
LA4:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	BIC #000377,%1
	TST %1
	BNE LA45
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	ASL %1
	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -2.(0),%2
	ASL %2
	MOV 26.(2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,26.(2)
LA45:
	MOV -2.(0),%1
	ASL %1
	MOV 32.(1),%1
	BIC #000377,%1
	TST %1
	BNE LA46
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	ASL %1
	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -2.(0),%2
	ASL %2
	MOV 32.(2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,32.(2)
LA46:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO PUPERROR
LA6:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	MOV %4,-(5)
	MOV -2.(0),%1
	JSR %7,@G+306.
	000012
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO COMPLETEPUP
LA8:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV %3,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV 4.(1),-8.(0)
	CLR -10.(0)
	TST -4.(0)
	BEQ LA47
	MOV -2.(0),%1
	ASL %1
	MOV 20.(1),%1
	BIC #000377,%1
	ADD -4.(0),%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,20.(2)
LA47:
	TST -6.(0)
	BEQ LA48
	MOV -2.(0),%1
	ASL %1
	MOV -6.(0),18.(1)
LA48:
	TST -8.(0)
	BEQ LA49
	MOV -2.(0),%1
	ADD #000015,%1
	MOV -8.(0),%2
	ADD #000010,%2
	JSR %7,@LA12
	000014
	MOV -2.(0),%1
	ADD #000020,%1
	MOV -8.(0),%2
	ADD #000005,%2
	JSR %7,@LA12
	000014
LA49:
	MOV -2.(0),%1
	ASL %1
	MOV 20.(1),%1

	BIC #177400,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,20.(2)
	MOV -2.(0),%1
	ASL %1
	TST 8.(1)
	BEQ LA50
	TST #040000
	BEQ LA50
	MOV G+380.,%1
	ASL %1
	MOV (1),%2
	MOV -2.(0),%1
	JSR %7,@G+318.
	000014
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

LA50:
	MOV -2.(0),%1
	JSR %7,@G+320.
	000014
	MOV -2.(0),%1
	JSR %7,@LA10
	000014
	MOV %1,-10.(0)
	MOV -2.(0),%1
	ASL %1
	TST 6.(1)
	BEQ LA51
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	ASL %1
	MOV -10.(0),%2
	MOV 20.(1),-20.(0)
	MOV -2.(0),%1
	JSR %7,@-20.(0)
	000014
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	ASL %1
	MOV 22.(1),-18.(0)
	MOV -2.(0),%1
	JSR %7,@-18.(0)
	000014
	BR LA52
LA51:
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	CLRB %1
	SWAB %1
	MOV %1,G+416.
	MOV -2.(0),%1
	ASL %1
	MOV -2.(0),%2
	MOV 2.(1),%1
	JSR %7,@G+230.
	000014
LA52:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO ROUTEPUP
LA9:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	CLRB %1
	SWAB %1
	CLR %3
	MOV %1,%2
	MOV G+414.,%1
	JSR %7,@G+342.
	000004
	MOV %1,-4.(0)
	TST -4.(0)
	BEQ LA54
	MOV -4.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #100377,%1
	CLRB %1
	SWAB %1
	CMP %1,#000017
	BGT LA54
	MOV -4.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 4.(1),6.(2)
	BR LA55
LA54:
	MOV -2.(0),%1
	ASL %1
	CLR 6.(1)
LA55:
	MOV -4.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #100377,%1
	TST %1
	BNE LA56
	MOV -2.(0),%1
	ASL %1
	MOV 26.(1),%1
	BIC #177400,%1
	BR LA53
LA56:
	MOV -4.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #177400,%1
	BR LA53
LA57:
LA53:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO DEFAULTPORT
LA11:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV (1),%1
	BIC #000377,%1
	TST %1
	BNE LA58
	MOV -4.(0),%1
	ASL %1
	MOV (1),%1
	BIC #000377,%1
	TST %1
	BNE LA59
	MOV -4.(0),%1
	ASL %1
	MOV (1),%1
	BIC #177400,%1
	TST %1
	BEQ LA59
	MOV G+380.,%1
	ASL %1
	MOV (1),%1
	ASL %1
	MOV 2.(1),%1
	SWAB %1
	CLRB %1
	MOV -4.(0),%2
	ASL %2
	MOV (2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -4.(0),%2
	ASL %2
	MOV %1,(2)
LA59:
	MOV -4.(0),%1
	ASL %1
	MOV (1),%1
	BIC #000377,%1
	MOV -2.(0),%2
	ASL %2
	MOV (2),%2
	BIC #177400,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,(2)
LA58:
	MOV -2.(0),%1
	ASL %1
	MOV (1),%1
	BIC #177400,%1
	TST %1
	BNE LA60
	MOV -4.(0),%1
	ASL %1
	MOV (1),%1
	BIC #177400,%1
	MOV -2.(0),%2
	ASL %2
	MOV (2),%2
	BIC #000377,%2
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,(2)
LA60:
	MOV -2.(0),%1
	ASL %1
	TST 2.(1)
	BNE LA61
	MOV -2.(0),%1
	ASL %1
	TST 4.(1)
	BNE LA61
	MOV -4.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 2.(1),2.(2)
	MOV -4.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 4.(1),4.(2)
LA61:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO EXCHANGEPORTS
LA13:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ADD #000015,%1
	MOV %1,-4.(0)
	MOV -2.(0),%1
	ADD #000020,%1
	MOV %1,-6.(0)
	MOV #000003,%1
	DEC %1
	CLR -8.(0)
	MOV %1,-10.(0)
	BR LA62
LA63:
	MOV -8.(0),%1
	ADD -4.(0),%1
	ASL %1
	MOV (1),-12.(0)
	MOV -8.(0),%1
	ADD -6.(0),%1
	ASL %1
	MOV -8.(0),%2
	ADD -4.(0),%2
	ASL %2
	MOV (1),(2)
	MOV -8.(0),%1
	ADD -6.(0),%1
	ASL %1
	MOV -12.(0),(1)
	INC -8.(0)
LA62:
	CMP -8.(0),-10.(0)
	BLE LA63
	MOV -2.(0),%1
	ASL %1
	MOV 32.(1),%1
	BIC #177400,%1
	TST %1
	BNE LA64
	MOV -2.(0),%1
	ASL %1
	MOV 32.(1),%1
	CLRB %1
	SWAB %1
	CLR %3
	MOV %1,%2
	MOV G+414.,%1
	JSR %7,@G+342.
	000010
	MOV %1,-8.(0)
	MOV -8.(0),%1
	ASL %1
	MOV 4.(1),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 32.(2),%2
	BIC #000377,%2
	MOV 4.(1),%1
	ADD %2,%1
	MOV -2.(0),%2
	ASL %2
	MOV %1,32.(2)
LA64:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETPUPDPORT
LA15:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -2.(0),%1
	ADD #000015,%1
	MOV #000003,%3
	MOV -4.(0),%2
	JSR %7,@G+200.
	000006
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETPUPSPORT
LA16:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -2.(0),%1
	ADD #000020,%1
	MOV #000003,%3
	MOV -4.(0),%2
	JSR %7,@G+200.
	000006
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETPUPID
LA17:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	MOV -4.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV (1),22.(2)
	MOV -4.(0),%1
	ASL %1
	MOV -2.(0),%2
	ASL %2
	MOV 2.(1),24.(2)
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO SETPUPCHECKSUM
LA19:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ASL %1
	TST 4.(1)
	BEQ LA67
	MOV -2.(0),%1
	ASL %1
	MOV 4.(1),%1

	ASL %1
	MOV 8.(1),%1
	BIC #077777,%1
	TST %1
	BEQ LA65
LA67:
	MOV -2.(0),%1
	ADD #000011,%1
	JSR %7,@G+322.
	000004
	MOV -2.(0),%2
	ASL %2
	MOV 18.(2),%2
	DEC %2
	CLC 
	ROR %2
	ADD #000011,%2
	ADD -2.(0),%2
	ASL %2
	MOV %1,(2)
	BR LA66
LA65:
	MOV -2.(0),%1
	ASL %1
	MOV 18.(1),%1
	DEC %1
	CLC 
	ROR %1
	ADD #000011,%1
	ADD -2.(0),%1
	ASL %1
	MOV #177777,(1)
LA66:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO RELEASEPBI
LA20:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV -2.(0),%1
	ASL %1
	MOV 4.(1),-4.(0)
	TST -4.(0)
	BEQ LA68
	MOV -4.(0),%1
	ASL %1
	MOV 2.(1),%1
	INC %1
	MOV -4.(0),%2
	ASL %2
	MOV %1,2.(2)
	MOV -2.(0),%1
	ASL %1
	TST 8.(1)
	BEQ LA69
	TST #100000
	BEQ LA69
	MOV -4.(0),%1
	ASL %1
	MOV 4.(1),%1
	INC %1
	MOV -4.(0),%2
	ASL %2
	MOV %1,4.(2)
	BR LA70
LA69:
	MOV -4.(0),%1
	ASL %1
	MOV 6.(1),%1
	INC %1
	MOV -4.(0),%2
	ASL %2
	MOV %1,6.(2)
LA70:
LA68:
	MOV -2.(0),%2
	MOV G+382.,%1
	JSR %7,@G+230.
	000006
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5


; ENTRY POINT TO GETPBI
LA21:
	SUB @(6),%0
	MOV %7,@%0
	MOV (6)+,-(0)
	MOV %0,%5
	MOV %1,-(5)
	MOV %2,-(5)
	CLR -6.(0)
LA72:
	MOV -2.(0),%1
	ASL %1
	MOV 2.(1),%1
	BIC #177400,%1
	TST %1
	BLE LA73
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	BIC #177400,%1
	TST %1
	BLE LA73
	MOV G+382.,%1
	JSR %7,@G+232.
	000010
	MOV %1,-6.(0)
	TST -6.(0)
	BEQ LA74
	BR LA75
LA74:
LA73:
	TST -4.(0)
	BEQ LA76
	CLR %1
	BR LA71
LA76:
	JSR %7,@G+254.
	000010
	BR LA72
LA75:
	MOV -2.(0),%1
	ASL %1
	MOV 2.(1),%1
	DEC %1
	MOV -2.(0),%2
	ASL %2
	MOV %1,2.(2)
	MOV -2.(0),%1
	ASL %1
	MOV 6.(1),%1
	DEC %1
	MOV -2.(0),%2
	ASL %2
	MOV %1,6.(2)
	MOV #000011,%1
	ADD #000013,%1
	MOV %1,%2
	MOV -6.(0),%1
	JSR %7,@G+202.
	000010
	MOV -6.(0),%1
	ASL %1
	MOV -2.(0),4.(1)
	MOV -6.(0),%1
	ASL %1
	MOV G+386.,2.(1)
	MOV -6.(0),%1
	BR LA71
LA71:
	MOV (0)+,%5
	ADD (5)+,%0
	JMP @%5

MA22:

.CSECT GLOBAL

	.=G+316.
	LA1
	.=G+314.
	LA8
	.=G+310.
	LA15
	.=G+312.
	LA16
	.=G+320.
	LA19
	.=G+306.
	LA20
	.=G+304.
	LA21

.CSECT

LA3:
	LA2
LA5:
	LA4
LA7:
	LA6
LA10:
	LA9
LA12:
	LA11
LA14:
	LA13
LA18:
	LA17
LA998:
	041431
	047101
	052047
	043440
	052105
	052040
	042510
	042522
	043040
	047522
	020115
	042510
	042522
LA997:
	041014
	042101
	041440
	042510
	045503
	052523
	000115
LA995:
	050014
	051117
	020124
	050511
	043040
	046125
	000114
LA994:
	047014
	020117
	052523
	044103
	050040
	051117
	000124


.END